<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>

    //～加油～
    /*
      1. 创建一个对象有那两种方式
       */

    // var 对象名 = {};
    // var 对象名 = new Object();
    /*
  2. 请举例说明，对象的基本操作的两种语法
  */
    //  点语法
    //  数组关联语法
    /*
      3.对象的curd，两种语法有什么区别
      */
    /* 点语法和数组关联语法，在键名为符合命名规则规范的操作上并无区别，
    但在操作如：纯数字键名以及特殊符号键名时则只能使用数组关联语法
    并且数组关联语法可以解析变量，但点语法不行 */

    /*
      4.对象怎么遍历？那个是键名，那个是键值
      */

    // 用for in语句来遍历对象
    // var obj = {};
    // for (var i in obj) {
    // console.log(i);  // i 就是键名
    // console.log(obj[i]); // obj[i] 就是键值
    // }
    /*
      5.简单和复杂数据类型在存储上的区别是什么？
      那赋值和比较上的区别又是什么？
      */
    /*
       简单数据类型：数据保存在栈内存中
       复杂数据类型：数据保存在堆内存中
 
       在赋值上，简单数据类型是直接将在栈中的值 赋予一个变量，而复杂数据类型则是将存在栈中的指针赋予变量。
       在比较上，简单数据类型是值与值的比较，复杂数据类型是地址与地址的比较
    */
    /*
      6.完善第二天演示的简易计算机，可以做到选择加减乘除运算
    */

    let num1 = +prompt('请输入第一个数')
    let num = prompt('请输入运算符')
    let num2 = +prompt('请输入第二个数')

    switch (num) {
      case '+':
        alert(num1 + num2)
        break
      case '-':
        alert(num1 - num2)
        break
      case '*':
        alert(num1 * num2)
        break
      case '/':
        alert(num1 / num2)
        break
      case '%':
        alert(num1 % num2)
        break
      default:
        alert('请输入正确的运算符')
    }
    /*
      7.给一个不多于5位的正整数，要求：一、求它是几位数，二、逆序打印出各位数字。
    */

    // var num = prompt("");
    // var i = num.length;
    // for (var j = 1; j <= i;  1j++) {
    //   console.log(num[i - j] - 0);
    // }
    /*
       8.(提高题)将100元整钞换成20元、10元、5元、2元、1元零钱，要求零钱总张数为30张，求有多少种换法？
    */
    // var a, b, c, d, e;
    // var count = 0;
    // for (a = 0; a <= 100; a++) {
    //   for (b = 0; b <= (100 - a) / 2; b++) {
    //     for (c = 0; c <= (100 - a - 2 * b) / 5; c++) {
    //       for (d = 0; d <= (100 - a - 2 * b - 5 * c) / 10; d++) {
    //         for (e = 0; e <= (100 - a - 2 * b - 5 * c - d * 10) / 20; e++) {
    //           if (a + b + c + d + e === 30 && a + b * 2 + c * 5 + d * 10 + e * 20 === 100) {
    //             count++;
    //           }
    //         }
    //       }
    //     }
    //   }
    // }
    // console.log(count);
  </script>
</body>

</html>